#pragma once

#include "IXDefaultMenuDraw.h"
#include "Logic/Include/XBaseObjImpl.h"

#include <IXFont.h>
#include <IXTextEnv.h>


class CXDefaultMenuDrawImpl : public CXBaseObjImpl<IXDefaultMenuDraw>
{
    typedef CXBaseObjImpl<IXDefaultMenuDraw> superclass;

    BEGIN_DEF_SKIN_CLASS(CXDefaultMenuDrawImpl, superclass, gs_strGuidXSkin)
        IMP_BASIC_INTF(IXDefaultMenuDraw, eIntf_Singleton)
        IMP_BASIC_INTF(IXCustomDraw, eIntf_NoCreate)
    END_DEF_SKIN_CLASS();

public:
    CXDefaultMenuDrawImpl();
    virtual ~CXDefaultMenuDrawImpl();

public:
    // IXDefaultMenuDraw
    virtual void STDMETHODCALLTYPE   OnMeasureItem(IN stCustomMeasureInfo* pInfo);
    virtual void STDMETHODCALLTYPE   OnDrawItem(IN stCustomDrawInfo* pInfo);

public:
    // IXBaseObj
    virtual void STDMETHODCALLTYPE   OnFinalRelease();

protected:
    IXFont*     m_pFont;
    IXTextEnv*  m_pTextEnv;
};


